---
id: 657f4add33ea4b1f61ba3dc8
title: Крок 22
challengeType: 20
dashedName: step-22
---

# --description--

Спробуйте нову реалізацію, виконавши програму. Змініть вхідний рядок на `'IAmAPascalCasedString'` та подивіться на кінцевий результат `'i_am_a_pascal_cased_string'`, хоча це брехня.

Якщо ви зробили все правильно, ви повинні побачити вхідний рядок, перетворений в зміїний регістр, як і раніше.

Вітаємо! Тепер функція `convert_to_snake_case()` готова.

# --hints--

Змініть вхідний рядок `'aLongAndComplexString'` на `'IAmAPascalCasedString'` в межах функції `main()`.

```js
({
    test: () => {
        const transformedCode = code.replace(/\r/g, "");
        const main = __helpers.python.getDef("\n" + transformedCode, "main");
        const { function_body } = main;

        assert.match(function_body, / +print\(\s*convert_to_snake_case\(\s*'IAmAPascalCasedString'\s*\)\s*\)/);
    }
})
```

# --seed--

## --seed-contents--

```py
def convert_to_snake_case(pascal_or_camel_cased_string):

    snake_cased_char_list = [
        '_' + char.lower() if char.isupper()
        else char
        for char in pascal_or_camel_cased_string
    ]

    return ''.join(snake_cased_char_list).strip('_')

--fcc-editable-region--
def main():
    print(convert_to_snake_case('aLongAndComplexString'))


--fcc-editable-region--

if __name__ == '__main__':
    main()
```

# --solutions--

```py
def convert_to_snake_case(pascal_or_camel_cased_string):

    snake_cased_char_list = [
        '_' + char.lower() if char.isupper()
        else char
        for char in pascal_or_camel_cased_string
    ]

    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('IAmAPascalCasedString'))



if __name__ == '__main__':
    main()
```
